プログラミング P()17 2018 2 3
「プログラミング P()16 2018 1 27」の続き
「ループ(繰り返し処理)」
人間は、退屈な「繰り返し処理」を嫌うでしょうが、
コンピューターは、こういうことが得意です。
前号では、1から10まで合計すると、いくつになるかについて、
公式を使って、計算しました。
a = 1
b = 10
print((a + b) * b / 2)
今回は、これを「繰り返し処理」で計算してみましょう。
ここでは、繰り返し文の「for文」を使います。
計算結果を「sigma」とします。
sigma = 0
for i in range(11):
sigma = sigma + i
print(sigma)
前号でも書きましたが、
Pythonでは、字下げ(インデント)も文法になります。
つまり、インデントされている行は、
繰り返し処理の範囲になります。
一方、print(sigma)は、インデントされていませんので、
繰り返し処理の対象ではありません。
さて、その前に、疑問に思ったのは、
「range(11)」の「11」でしょうか。
1から10まで合計するので、「10」のはずであると思ったでしょうか。
ここが、コンピューター特有のものとなります。
実は、コンピューターやプログラミングでは、
「0,1,2,3,4,5,6,7,8,9,10」なので、11個あるのです。
つまり、「0」から始まるので、一つ多くなるのです。
そういうわけで、「range」という機能について、
だいたい見当がつくと思います。
11個の箱が用意されて、
「0,1,2,3,4,5,6,7,8,9,10」という数字が入っているのです。
これらの数字が順番に計算式(sigma = sigma + i)に入っていって、
合計が積算されたのです。
ちなみに、このような計算をC言語で書くと、
以下のようになります。
#include <stdio.h>
int main()
{
int i;
int sigma;
for (i = 1;i <= 10;i++){
sigma = sigma + i;
}
printf("%d\n",sigma);
return 0;
}
「C言語は、なんて面倒くさい言語だろう」と思ったでしょうか。
しかし、処理速度は、Pythonより、C言語の方が断然早いのです。
スピードを求めるならば、C言語でしょう。
「PC/AT互換機って何?」
これだけ見ると、何のことだがわかりませんが、
英語に直すと、見当がつきます。
「IBM PC/AT Compatibles」となります。
つまり、IBMが作った「PC AT」というパソコンの互換機となります。
日本では、「DOS/V機」と呼ばれることが多かったと思います。
そういう名称の雑誌があり、私は愛読者でした。
パソコンの本家本元は、IBMの「PC AT」というパソコンでしたが、
IBMがパソコンを普及させるために、
アーキテクチャ(設計や仕様)を公開したのです。
そこで、多くのメーカーがパソコン市場に参入して、
IBMの「PC AT」互換機を安く大量に生産した結果、
本家本元の「PC AT」を超えて、
互換機の方が、「世界標準」となってしまいました。
互換機の世界では、「安価で大量生産」が主流となりましたので、
その後、IBMは、パソコン分野から撤退することになりました。
こうして「互換機市場」が急拡大するとともに、
パソコンメーカーではない個人が、
CPUやハードディスクなどの部品を集めてきて、
自作のパソコンを作ることができるようになったのです。